package cn.colat.micse.user.service.user;

import cn.colat.micse.user.entity.User;
import cn.colat.micse.user.pojo.dto.UserInfoDTO;
import cn.colat.micse.user.pojo.vo.AccountLoginVO;
import cn.colat.micse.user.pojo.vo.AccountPhoneLoginVO;
import cn.colat.micse.user.pojo.vo.SendSmsVO;
import cn.dev33.satoken.stp.SaTokenInfo;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * user Service
 */
public interface UserService extends IService<User> {

    /**
     * 用户账号登录
     *
     * @param vo 登录账号、登录识别码
     * @return 登录后的token信息
     */
    SaTokenInfo accountLogin(AccountLoginVO vo);

    /**
     * 获取用户信息
     *
     * @return 用户基本信息
     */
    UserInfoDTO userInfo();

    /**
     * 发送手机验证码
     *
     * @param vo 发送验证码参数
     */
    void sendSms(SendSmsVO vo);

    /**
     * 手机号登录
     *
     * @param vo 手机号登录参数
     * @return Sa-Token信息
     */
    SaTokenInfo phoneLogin(AccountPhoneLoginVO vo);
}
